package interfaces.abstracts;

import impl.parser.UDecideParser;
import impl.reasoning.UDecideReasoner;
import impl.util.UtilityAssertion;

import java.util.Collection;

import org.protege.editor.owl.OWLEditorKit;
import org.semanticweb.owlapi.expression.OWLEntityChecker;
import org.semanticweb.owlapi.model.OWLClassExpression;
import org.semanticweb.owlapi.model.OWLDataFactory;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyManager;

public abstract class AbstractUDecideManager {

	public abstract OWLOntology getKnowledgeBase();

	public abstract OWLEntityChecker getOWLEntityChecker();

	public abstract OWLOntologyManager getOwlOntologyManager();

	public abstract OWLDataFactory getOWLlDataFactory();

	public abstract OWLEditorKit getOWLEditorKit();

	public abstract UDecideReasoner getUDecideReasoner();

	public abstract UDecideParser getUDecideParser();

	public abstract OWLClassExpression getChoiceClassExpression();

	public abstract void setChoiceClassExpression(OWLClassExpression choiceClassExpression);

	public abstract void addUtilityAssertion(UtilityAssertion uAssertion);

	public abstract void removeUtilityAssertions(Collection<UtilityAssertion> uAssertion);

	public abstract void clearUBox();

	public abstract void loadUBoxFromUtilityAssertions(Collection<UtilityAssertion> utilityAssertions);

	public abstract void editUtilityAssertion(UtilityAssertion oldUtilityAssertion, UtilityAssertion newUtilityAssertion);

}
